package com.freewater.javabase.demo.interfaces;

public interface MyInterface {
    String NAME = "MyInterface";

    /**
     * 抽象方法，所有实现类都要实现
     *
     * @return
     */
    void abstractMethod();

    /**
     * 默认方法
     */
    default void defaultMethod() {
        //默认方法里可以调用私有方法
        privateMethod();

        // 默认方法可以调用静态私有方法
        staticPrivateMethod();

        System.out.println("默认方法-MyInterface-defaultMethod");
    }

    /**
     * 静态方法
     *
     * @return
     */
    static void staticMethod() {
        // 静态方法只能调用静态私有方法，不能调用私有方法
        System.out.println("静态方法-MyInterface-staticMethod");
    }

    /**
     * 私有方法
     */
    private void privateMethod() {
        System.out.println("私有方法-MyInterface-privateMethod");
    }

    /**
     * 静态私有方法
     */
    private static void staticPrivateMethod() {
        System.out.println("静态私有方法-MyInterface-staticPrivateMethod");
    }
}
